package com.hejing.线程的创建方式;

/**
 * ClassName: OddNumberTest
 * Package: com.hejing.线程的创建方式
 * Description:
 *
 * @Author: HeJing
 * @Create: 2023-04-14 11:32
 * @Version: 1.0
 */
public class OddNumberTest {
    public static void main(String[] args) {

        // ********************* 分线程打印奇数 ************************
        // 步骤3: 创建实现类的对象
        OddNumberPrint oddtest = new OddNumberPrint();
        // 步骤4: 将该对象作为实参传递到Thread类的构造器中，创建Thread对象
        Thread threadOdd = new Thread(oddtest);
        // 步骤5: 通过Thread实例对象调用Start()方法启动线程。
        threadOdd.start();

        // ********************** 分线程偶数打印 ************************
        EvenNumberPrint eventest = new EvenNumberPrint();
        Thread threadEven = new Thread(eventest);
        threadEven.start();

        // main方法自带的打印操作。
        for (int i = 1; i < 100; i++) {
            if (i % 2 != 0) {
                System.out.println(Thread.currentThread().getName() + ": " + i);
            }
        }
    }
}

// 步骤1: 创建一个实现Runnable接口的类
class OddNumberPrint implements Runnable {

    // 步骤2: 实现接口中的抽象方法run() --> 将此线程需要执行的操作声明在次方法体中。
    @Override
    public void run() {
        for (int i = 1; i < 100; i++) {
            if (i % 2 != 0) {
                System.out.println(Thread.currentThread().getName() + ": " + i);
            }
        }
    }
}


/**
 * 拓展: 再创建一个分线程，用以遍历100以内的偶数:
 */

class EvenNumberPrint implements Runnable {
    @Override
    public void run() {
        for (int i = 1; i < 100; i++) {
            if (i % 2 == 0) {
                System.out.println(Thread.currentThread().getName() + ": " + i);
            }
        }
    }
}






















